%-------------------------------
%编程练习
%-------------------------------
1、	实现一个简单的交互式命令行界面，可以输入要计算的函数，输入exti退出。参考工程为gitee上的calculator项目（(https://github.com/btmills/calculator)。\par
2、	利用GNU MP实现以下算法（不能直接使用GNU MP已有函数）。\par
\begin{table*}[!h]
 \centering
 \resizebox{\textwidth}{!}{%  
	\begin{tabular}{|c|c|c|c|}
		\hline 
		序号 & 命令行接口 & 输出示例 & 说明 \\ 
		\hline 
		1 & prime\_erat(n,m) & 3,5,7 & 利用Eratosthenese筛选法，从屏幕输出从n到m的所有素数，如果此范围内不存在素数，输出none\\ 
		\hline 
		2 & gcd(n,m) & 5 & 利用欧几里得算法实现求解n和m的最大公约数的算法\\ 
		\hline 
		3 & lcm(n,m) & 12 & 求解n和m的最小公倍数的算法\\ 
		\hline 
		4 & factor(n) & 2\^2*3*5 & 求解整数n的标准分解式 \\ 
		\hline 
		5 & eulerfun(n) & 2 & 计算n的欧拉函数 \\ 
		\hline 
		6 & inverse(n,m) & 550 & 实现扩展欧几里得算法，求解n模m的逆元，如果不存在，输出none。 \\ 
		\hline 
		7 & crt(a,b,c,d,e,f) & 28 & 实现CRT，求解$\begin{cases}
		x\equiv a(mod\ b)\\
		x\equiv c(mod\ d)\\
		x\equiv e(mod\ f)
		
	\end{cases}$ \\ 
	\hline 
	8 & order(a,m) & 5 & a对模m的次数 \\ 
	\hline 
	9 & primroot(m) & 6,7,11,12,13,15,17,19,22,24,26,28,29,30,34,35 & 求m的原根 \\ 
	\hline 
	10 & legendresym(a,p) & -1 & 利用二次互反律，计算a对p的legendre符号 \\ 
	\hline 
	\end{tabular}%
}
\end{table*}

\par
3、	实验报告中要有框架和功能测试，要编写测试用例。测试用例的基础知识可以在网上查阅相关资料了解.\par
4、	实验报告中的流程图绘制要求参考百度百科“程序流程图”.
